Host devices such as computers, laptops, personal video recorders (PVRs), MP3 players, game consoles, servers, set-top boxes, digital cameras, and/or other electronic devices often need to store a large amount of data. Storage devices such as hard disk drives (HDD) may be used to meet these storage requirements.
A hard disk controller (HDC) communicates with the storage device and the host system. The HDC manages interaction between the storage device and the host system. Communication between the host system and the HDC is usually provided using one of a variety of standard I/O bus interfaces. Typically, when data is read from a storage device, a host system sends a read command to the HDC, which stores the read command into a buffer memory. Data is read from the storage device and stored in the buffer memory.
The buffer memory typically employs volatile memory having low latency. Double data rate synchronous dynamic random access memory (DDR) may be used as the buffer memory. The DDR transfers data on a rising and falling edge of a clock signal of the HDC. The transfer rate of the DDR is double the transfer rate of a synchronous random access memory (SDRAM).
A DDR SDRAM controller writes or reads data to or from the DDR SDRAM. The DDR SDRAM controller receives transfer requests from channels of an HDD system. Typically, DDR SDRAM controllers accommodate various formats of the transfer requests and store and/or retrieve data to and/or from a buffer using the various formats.